package com.javarush.test.level17.lesson10.bonus01;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

/* CRUD
CrUD - Create, Update, Delete
Программа запускается с одним из следующих наборов параметров:
-c name sex bd
-u id name sex bd
-d id
-i id
Значения параметров:
name - имя, String
sex - пол, "м" или "ж", одна буква
bd - дата рождения в следующем формате 15/04/1990
-с  - добавляет человека с заданными параметрами в конец allPeople, выводит id (index) на экран
-u  - обновляет данные человека с данным id
-d  - производит логическое удаление человека с id
-i  - выводит на экран информацию о человеке с id: name sex (м/ж) bd (формат 15-Apr-1990)

id соответствует индексу в списке
Все люди должны храниться в allPeople
Используйте Locale.ENGLISH в качестве второго параметра для SimpleDateFormat

Пример параметров: -c Миронов м 15/04/1990
*/

public class Solution {
    public static List<Person> allPeople = new ArrayList<Person>();
    static {
        allPeople.add(Person.createMale("Иванов Иван", new Date()));  //сегодня родился    id=0
        allPeople.add(Person.createMale("Петров Петр", new Date()));  //сегодня родился    id=1
    }

    public static void main(String[] args) throws IOException, ParseException
    {
        if (args.length < 2 || args.length>5|| args.length==3)
            return;



            SimpleDateFormat date=new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);


            if (args[0].equals( "-c")&&args.length==4)
            {

                if (args[2].equals("м"))
                {
                    allPeople.add(Person.createMale(args[1],date.parse(args[3])));
                } else if(args[2].equals("ж"))
                    allPeople.add(Person.createFemale(args[1],date.parse(args[3])));
                System.out.println(allPeople.size()-1);
            }

            else if (args[0].equals("-u")&&args.length==5)
            {
                int n=Integer.parseInt(args[1]);
                allPeople.get(n).setName(args[2]);
                allPeople.get(n).setSex(sexChange(args[3]));
                allPeople.get(n).setBirthDay(date.parse(args[4]));



            }

            else if (args[0].equals("-d")&&args.length==2)
            {
                int n=Integer.parseInt(args[1]);
                allPeople.get(n).setName(null);
                allPeople.get(n).setSex(null);
                allPeople.get(n).setBirthDay(null);

            }

            else if (args[0].equals("-i")&&args.length==2)
            {
                SimpleDateFormat dateOut=new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
                int n=Integer.parseInt(args[1]);

                String s="";
                if (allPeople.get(n).getSex().equals(Sex.MALE)) s="м";
                else if (allPeople.get(n).getSex().equals(Sex.FEMALE)) s="ж";
                System.out.println(allPeople.get(n).getName()+" "+s+" "+dateOut.format(allPeople.get(n).getBirthDay()));
            }




    }
    public static Sex sexChange(String a)
    {
        return (a.equals("м")) ? Sex.MALE : Sex.FEMALE;
    }

}
